ripper-tree diffing